Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Abstract Window Toolkit</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Abstract_Window_Toolkit"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Abstract_Window_Toolkit rootpage-Abstract_Window_Toolkit skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Abstract Window Toolkit</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">
</p>

<p>The <b>Abstract Window Toolkit</b> (<b>AWT</b>) is <a href="Java_(programming_language)" title="Java (programming language)">Java</a>'s original platform-dependent <a href="Windowing_system" title="Windowing system">windowing</a>, <a href="Graphic" class="mw-redirect" title="Graphic">graphics</a>, and <a href="User-interface" class="mw-redirect" title="User-interface">user-interface</a> <a href="Widget_toolkit" title="Widget toolkit">widget toolkit</a>, preceding <a href="Swing_(Java)" title="Swing (Java)">Swing</a>. The AWT is part of the <a href="Java_Foundation_Classes" title="Java Foundation Classes">Java Foundation Classes</a> (JFC) — the standard <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">API</a> for providing a <a href="Graphical_user_interface" title="Graphical user interface">graphical user interface</a> (GUI) for a Java program.<sup id="cite_ref-foldoc_1-0" class="reference"><a href="#cite_note-foldoc-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> AWT is also the GUI toolkit for a number of <a href="Java_Platform%2C_Micro_Edition" title="Java Platform, Micro Edition">Java ME</a> profiles. For example, <a href="Connected_Device_Configuration" title="Connected Device Configuration">Connected Device Configuration</a> profiles require Java <a href="Software_execution" class="mw-redirect" title="Software execution">runtimes</a> on <a href="Mobile_telephone" class="mw-redirect" title="Mobile telephone">mobile telephones</a> to support the Abstract Window Toolkit.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>When <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a> first released Java in 1995, AWT widgets provided a thin level of abstraction over the underlying native user-interface. For example, creating an AWT <a href="Check_box" class="mw-redirect" title="Check box">check box</a> would cause AWT directly to call the underlying native subroutine that created a check box. However, the check box on <a href="Windows" class="mw-redirect" title="Windows">Windows</a> is not the same as the check box on <a href="MacOS" title="MacOS">macOS</a> or on the various types of <a href="Unix" title="Unix">Unix</a>. Some application developers prefer this model because it provides a high degree of fidelity to the underlying native windowing toolkit and seamless integration with native applications. In other words, a GUI program written using AWT looks like a native Microsoft Windows application when run on Windows, but the same program looks like a native <a href="Apple_Macintosh" class="mw-redirect" title="Apple Macintosh">Apple Macintosh</a> application when run on a Mac, etc. However, some application developers dislike this model because they prefer their applications to look exactly the same on every platform.
</p><p>In <a href="Java_Platform%2C_Standard_Edition" title="Java Platform, Standard Edition">J2SE 1.2</a>, the <a href="Swing_(Java)" title="Swing (Java)">Swing</a> toolkit largely superseded the AWT's widgets. In addition to providing a richer set of UI widgets, Swing draws its own widgets (by using <a href="Java_2D" title="Java 2D">Java 2D</a> to call into low-level subroutines in the local graphics subsystem) instead of relying on the operating system's high-level user interface module. Swing provides the option of using either the native platform's <a href="Look_and_feel#Look_and_Feel_in_Widget_Toolkits" title="Look and feel">"look and feel"</a> or a cross-platform look and feel (the "Java Look and Feel") that looks the same on all windowing systems.
</p>
<div class="mw-heading mw-heading2"><h2 id="Architecture">Architecture</h2></div>
<p>The AWT provides two levels of <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">APIs</a>:
</p>
<ul><li>A general interface between Java and the native system, used for <a href="Windowing_system" title="Windowing system">windowing</a>, <a href="Event-driven_programming" title="Event-driven programming">events</a>, and <a href="Layout_manager" title="Layout manager">layout managers</a>. This API is at the core of Java <a href="Graphical_user_interface" title="Graphical user interface">GUI</a> programming and is also used by <a href="Swing_(Java)" title="Swing (Java)">Swing</a> and <a href="Java_2D" title="Java 2D">Java 2D</a>. It contains:
<ul><li>The interface between the native windowing system and the Java application;</li>
<li>The core of the GUI <a href="Event-driven_programming" title="Event-driven programming">event</a> subsystem;</li>
<li>Several <a href="Layout_manager" title="Layout manager">layout managers</a>;</li>
<li>The interface to <a href="Input_device" title="Input device">input devices</a> such as <a href="Mouse_(computing)" class="mw-redirect" title="Mouse (computing)">mouse</a> and <a href="Keyboard_(computing)" class="mw-redirect" title="Keyboard (computing)">keyboard</a>; and</li>
<li>A <code><a rel="nofollow" class="external text" href="https://docs.oracle.com/en/java/javase/24/docs/api/java.desktop/java/awt/datatransfer/package-summary.html">java.awt.datatransfer</a></code> <a href="Java_package" title="Java package">package</a> for use with the <a href="Clipboard_(software)" class="mw-redirect" title="Clipboard (software)">Clipboard</a> and <a href="Drag_and_drop" title="Drag and drop">Drag and Drop</a>.</li></ul></li>
<li>A basic set of GUI widgets such as buttons, text boxes, and menus. It also provides the <a href="Java_AWT_Native_Interface" title="Java AWT Native Interface">AWT Native Interface</a>, which enables <a href="Rendering_(computer_graphics)" title="Rendering (computer graphics)">rendering</a> <a href="Library_(computer_science)" class="mw-redirect" title="Library (computer science)">libraries</a> compiled to <a href="Native_code" class="mw-redirect" title="Native code">native code</a> to draw directly to an AWT <code><a rel="nofollow" class="external text" href="https://docs.oracle.com/en/java/javase/24/docs/api/java.desktop/java/awt/Canvas.html">Canvas</a></code> <a href="Object_(computer_science)" title="Object (computer science)">object</a> drawing surface.</li></ul>
<p>AWT also makes some higher level functionality available to applications, such as:
</p>
<ul><li>Access to the <a href="System_tray" class="mw-redirect" title="System tray">system tray</a> on supporting systems; and</li>
<li>The ability to launch some desktop applications such as <a href="Web_browser" title="Web browser">web browsers</a> and <a href="Mail_client" class="mw-redirect" title="Mail client">email clients</a> from a Java application.</li></ul>
<p>Neither AWT nor Swing is inherently <a href="Thread_safety" title="Thread safety">thread safe</a>. Therefore, code that updates the GUI or processes events should execute on the <a href="Event_dispatching_thread" title="Event dispatching thread">Event dispatching thread</a>. Failure to do so may result in a <a href="Deadlock_(computer_science)" title="Deadlock (computer science)">deadlock</a> or race condition. To address this problem, a utility class called <a href="SwingWorker" title="SwingWorker">SwingWorker</a> allows applications to perform time-consuming tasks following user-interaction events in the event dispatching thread.
</p>
<div class="mw-heading mw-heading2"><h2 id="Mixing_AWT_and_Swing_components">Mixing AWT and Swing components</h2></div>
<p>Where there is a Swing version of an AWT component it will begin with J- and should be used exclusively, replacing the AWT version. For example, in Swing, only use JButton, never Button class. As mentioned above, the AWT core classes, such as Color and Font, are still used as-is in Swing.
</p><p>When drawing in Swing, use JPanel and override paintComponent(Graphics g) instead of using the AWT paint() methods.
</p><p>Before <a href="Java_version_history#Java_SE_6" title="Java version history">Java 6 Update 12</a>, mixing <a href="Swing_(Java)" title="Swing (Java)">Swing</a> components and basic AWT widgets often resulted in undesired side effects, with AWT widgets appearing on top of the Swing widgets regardless of their defined <a href="Z-order" title="Z-order">z-order</a>. This problem was because the rendering architecture of the two widget toolkits was very different, despite Swing borrowing heavyweight top <a href="Container_(data_structure)" class="mw-redirect" title="Container (data structure)">containers</a> from AWT.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Starting in <a href="Java_version_history#Java_SE_6" title="Java version history">Java 6 Update 12</a>, it is possible to mix Swing and AWT widgets without having z-order problems.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Example">Example</h2></div>
<div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.*</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.event.WindowAdapter</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.event.WindowEvent</span><span class="p">;</span>

<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">MyApp</span><span class="w"> </span><span class="p">{</span>

<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">Frame</span><span class="w"> </span><span class="n">frame</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Frame</span><span class="p">(</span><span class="s">"Application"</span><span class="p">);</span>
<span class="w"> </span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">Label</span><span class="p">(</span><span class="s">"Hello!"</span><span class="p">));</span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">setSize</span><span class="p">(</span><span class="mi">500</span><span class="p">,</span><span class="w"> </span><span class="mi">500</span><span class="p">);</span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">setLocationRelativeTo</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span><span class="w"> </span><span class="c1">// Centers the window</span>
<span class="w"> </span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">addWindowListener</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">WindowAdapter</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nd">@Override</span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">windowClosing</span><span class="p">(</span><span class="n">WindowEvent</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">dispose</span><span class="p">();</span><span class="w"> </span><span class="c1">// Releases native screen resources</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">});</span>
<span class="w"> </span>
<span class="w"> </span><span class="n">frame</span><span class="p">.</span><span class="na">setVisible</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Implementation">Implementation</h2></div>
<p>As the AWT is a bridge to the underlying native user-interface, its implementation on a new <a href="Operating_system" title="Operating system">operating system</a> may involve a lot of work, especially if it involves any of the AWT GUI widgets, because each of them requires that its native peers be developed from scratch.
</p><p>A new project, <a rel="nofollow" class="external text" href="http://hg.openjdk.java.net/caciocavallo/caciocavallo/raw-file/tip/cacio-docs/index.html">Caciocavallo</a>, has been created, that provides an <a href="OpenJDK" title="OpenJDK">OpenJDK</a>-based Java API to ease AWT implementation on new systems.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> The project has successfully implemented AWT widgets using <a href="Java2D" class="mw-redirect" title="Java2D">Java2D</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> All the necessary core-JDK modifications have since been pushed to <a href="OpenJDK" title="OpenJDK">OpenJDK 7</a>,<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> which means that Java can now be used on a graphics stack other than one of those provided by the official JDK (<a href="X_Window_System" title="X Window System">X Window System</a>, <a href="OpenGL" title="OpenGL">OpenGL</a> or <a href="DirectX" title="DirectX">DirectX</a>), by including an external library and setting some system properties. A <a href="DirectFB" title="DirectFB">DirectFB</a> backend for Caciocavallo<sup id="cite_ref-rkennkeDirectFB_8-0" class="reference"><a href="#cite_note-rkennkeDirectFB-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> is under development, as is an <a href="HTML5" title="HTML5">HTML5</a> backend; the aim is to deploy existing Swing applications—without Java support—as ordinary web applications running on a web server.<sup id="cite_ref-rkennkeDirectFB_8-1" class="reference"><a href="#cite_note-rkennkeDirectFB-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1266661725">
/* start https://en.wikipedia.org/ */


.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}


/* end https://en.wikipedia.org/ */
</style>
<ul><li><a href="Swing_(Java)" title="Swing (Java)">Swing (Java)</a></li>
<li><a href="Standard_Widget_Toolkit" title="Standard Widget Toolkit">Standard Widget Toolkit</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-foldoc-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-foldoc_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1041539562">
/* start https://en.wikipedia.org/ */


.mw-parser-output .citation{word-wrap:break-word}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}


/* end https://en.wikipedia.org/ */
</style><span class="citation foldoc">This article is based on material taken from <a rel="nofollow" class="external text" href="https://foldoc.org/Abstract+Window+Toolkit">Abstract+Window+Toolkit</a> at the <i><a href="Free_On-line_Dictionary_of_Computing" title="Free On-line Dictionary of Computing">Free On-line Dictionary of Computing</a></i> prior to 1 November 2008 and incorporated under the "relicensing" terms of the <a href="GNU_Free_Documentation_License" title="GNU Free Documentation License">GFDL</a>, version 1.3 or later.</span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFFowler1994" class="citation web cs1">Fowler, Amy (1994). <a rel="nofollow" class="external text" href="http://java.sun.com/products/jfc/tsc/articles/mixing/index.html">"Mixing heavy and light components"</a>. <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111223035101/http://java.sun.com/products/jfc/tsc/articles/mixing/index.html">Archived</a> from the original on 23 December 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">17 December</span> 2008</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20081217062847/http://download.java.net/jdk6/6u12/promoted/b02/changes/jdk6uN-b02.html">"Bug/RFE fixed in current JDK 6u12 build"</a>. <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>. 12 December 2008. Archived from <a rel="nofollow" class="external text" href="http://download.java.net/jdk6/6u12/promoted/b02/changes/jdk6uN-b02.html">the original</a> on 17 December 2008<span class="reference-accessdate">. Retrieved <span class="nowrap">17 December</span> 2008</span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFTorre2008" class="citation web cs1">Torre, Mario (2 March 2008). <a rel="nofollow" class="external text" href="http://mail.openjdk.java.net/pipermail/challenge-discuss/2008-March/000082.html">"FINAL PROPOSAL: Portable GUI backends"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120319173058/http://mail.openjdk.java.net/pipermail/challenge-discuss/2008-March/000082.html">Archived</a> from the original on 19 March 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">7 September</span> 2008</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFKennke2008" class="citation web cs1">Kennke, Roman (18 December 2008). <a rel="nofollow" class="external text" href="http://rkennke.wordpress.com/2008/12/18/caciocavallo-architecture-overview/">"Caciocavallo Architecture Overview"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">7 September</span> 2008</span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFKennke2008" class="citation web cs1">Kennke, Roman (3 September 2008). <a rel="nofollow" class="external text" href="http://rkennke.wordpress.com/2008/09/03/cacio-swing-awt-peers/">"Cacio Swing AWT peers"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120313203649/http://rkennke.wordpress.com/2008/09/03/cacio-swing-awt-peers/">Archived</a> from the original on 13 March 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">7 September</span> 2008</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://mail.openjdk.java.net/pipermail/caciocavallo-dev/2009-September/000184.html">"How much has been pushed upstream?"</a>. openjdk.java.net. 20 September 2009. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120319173102/http://mail.openjdk.java.net/pipermail/caciocavallo-dev/2009-September/000184.html">Archived</a> from the original on 19 March 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">7 March</span> 2010</span>. <q><i>You don't need anymore of those patches, with the latest FontManager push, everything is upstream now, so just use the Cacio repo, it's completely self contained.</i></q></cite></span>
</li>
<li id="cite_note-rkennkeDirectFB-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-rkennkeDirectFB_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-rkennkeDirectFB_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFKennke2011" class="citation web cs1">Kennke, Roman (28 July 2011). <a rel="nofollow" class="external text" href="http://rkennke.wordpress.com/2011/07/28/jdk7-and-cacio-coolness/">"JDK7 and Cacio coolness"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">8 August</span> 2011</span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite id="CITEREFEisserer" class="citation web cs1">Eisserer, Clemens. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120321144746/http://www.google-melange.com/gsoc/project/google/gsoc2011/linuxhippy/11001">"HTML5/Canvas backend for Caciocavallo (GNU-Classpath)"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.google-melange.com/gsoc/project/google/gsoc2011/linuxhippy/11001">the original</a> on 21 March 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">8 August</span> 2011</span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */


.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */


@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}


/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */


.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}


/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikibooks has a book on the topic of: <i><b><a href="https://en.wikibooks.org/wiki/Java_Swings/AWT" class="extiw external" title="wikibooks:Java Swings/AWT">Java Swings/AWT</a></b></i></div></div>
</div>
<div class="side-box side-box-right sistersitebox">
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikimedia Commons has media related to <a href="https://commons.wikimedia.org/wiki/AWT" class="extiw external" title="commons:AWT"><span style="font-style:italic; font-weight:bold;">AWT</span></a>.</div></div>
</div>
<ul><li><code><a rel="nofollow" class="external text" href="https://docs.oracle.com/en/java/javase/24/docs/api/java.desktop/java/awt/package-summary.html">java.awt</a></code> (AWT <a href="Javadoc" title="Javadoc">Javadoc</a> API documentation)</li>
<li><a rel="nofollow" class="external text" href="https://docs.oracle.com/javase/8/docs/technotes/guides/awt">AWT documentation</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20161215114326/http://www.java-forums.org/awt-swing/">AWT/Swing</a></li>
<li><a rel="nofollow" class="external text" href="http://www.java-tips.org/java-se-tips-100019/21-java-awt.html">java.awt</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160829004424/http://www.java-tips.org/java-se-tips-100019/21-java-awt.html">Archived</a> 29 August 2016 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Java_desktop71" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Java_desktop71" style="font-size:114%;margin:0 4em"><a href="Java_(software_platform)" title="Java (software platform)">Java</a> desktop</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">APIs</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Java_Foundation_Classes" title="Java Foundation Classes">Java Foundation Classes</a></li>
<li>
<ul><li><a href="Java_AWT_Native_Interface" title="Java AWT Native Interface">Java AWT Native Interface</a></li></ul></li>
<li><a href="Standard_Widget_Toolkit" title="Standard Widget Toolkit">Standard Widget Toolkit</a></li>
<li><a href="Java_2D" title="Java 2D">Java 2D</a></li>
<li><a href="Java_3D" title="Java 3D">Java 3D</a></li>
<li><a href="Swing_(Java)" title="Swing (Java)">Swing</a>
<ul><li><a href="SwingWorker" title="SwingWorker">SwingWorker</a></li>
<li><a href="Pluggable_look_and_feel" title="Pluggable look and feel">Pluggable look and feel</a></li>
<li><a href="Synth_Look_and_Feel" title="Synth Look and Feel">synth Look and Feel</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Deprecated APIs</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Java_applet" title="Java applet">Java applet</a></li>
<li><a href="Lightweight_User_Interface_Toolkit" title="Lightweight User Interface Toolkit">Lightweight User Interface Toolkit</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Open-source</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="JavaFX" title="JavaFX">JavaFX</a></li>
<li><a href="Java_OpenGL" title="Java OpenGL">Java OpenGL</a></li>
<li><a href="Java_Bindings_for_OpenGL" title="Java Bindings for OpenGL">Java Bindings for OpenGL</a></li>
<li><a href="Lightweight_Java_Game_Library" class="mw-redirect" title="Lightweight Java Game Library">Lightweight Java Game Library</a>
<ul><li><a href="LibGDX" title="LibGDX">libGDX</a></li></ul></li>
<li><a href="Application_Foundation_Classes" title="Application Foundation Classes">Application Foundation Classes</a></li>
<li><a href="Qt_Jambi" class="mw-redirect" title="Qt Jambi">Qt Jambi</a></li>
<li><a href="QuickTime_for_Java" title="QuickTime for Java">QuickTime for Java</a></li>
<li><a href="SwingLabs" title="SwingLabs">swingLabs</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="List_of_widget_toolkits573" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="List_of_widget_toolkits573" style="font-size:114%;margin:0 4em"><a href="List_of_widget_toolkits" title="List of widget toolkits">List</a> of <a href="Widget_toolkit" title="Widget toolkit">widget toolkits</a></div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>Low-level platform-specific</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="AmigaOS" title="AmigaOS">AmigaOS</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Intuition_(Amiga)" title="Intuition (Amiga)">Intuition</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a>, <a href="MacOS" title="MacOS">macOS</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Macintosh_Toolbox" title="Macintosh Toolbox">Macintosh Toolbox</a></li>
<li><a href="Carbon_(API)" title="Carbon (API)">Carbon</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Windows_API" title="Windows API">Windows API</a></li>
<li><a href="Universal_Windows_Platform" title="Universal Windows Platform">UWP</a>
<ul><li><a href="Windows_Runtime" title="Windows Runtime">WinRT</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Unix" title="Unix">Unix</a>,<br>under <a href="X_Window_System" title="X Window System">X11</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Xlib" title="Xlib">Xlib</a></li>
<li><a href="XCB" title="XCB">XCB</a></li>
<li><a href="X_Toolkit_Intrinsics" title="X Toolkit Intrinsics">X Toolkit Intrinsics</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="BeOS" title="BeOS">BeOS</a>, <a href="Haiku_(operating_system)" title="Haiku (operating system)">Haiku</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BeOS_API" class="mw-redirect" title="BeOS API">BeOS API</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Android_(operating_system)" title="Android (operating system)">Android</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="CLI38" scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mono_(software)#Xamarin.Android" title="Mono (software)">Xamarin.Android</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>Low Level Cross-platform</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="OpenTK" title="OpenTK">OpenTK</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C_(programming_language)" title="C (programming language)">C</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="GDK" title="GDK">GDK</a></li>
<li><a href="Simple_DirectMedia_Layer" title="Simple DirectMedia Layer">Simple DirectMedia Layer</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Java_(programming_language)" title="Java (programming language)">Java</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Java_OpenGL" title="Java OpenGL">JOGL</a></li>
<li><a href="Lightweight_Java_Game_Library" class="mw-redirect" title="Lightweight Java Game Library">LWJGL</a></li></ul>
</div></td></tr><tr><td colspan="2" class="navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>High-level, platform-specific</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="AmigaOS" title="AmigaOS">AmigaOS</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BOOPSI" title="BOOPSI">BOOPSI</a></li>
<li><a href="Magic_User_Interface" title="Magic User Interface">MUI</a></li>
<li><a href="ReAction_GUI" title="ReAction GUI">ReAction GUI</a></li>
<li><a href="Zune_(widget_toolkit)" title="Zune (widget toolkit)">Zune</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Classic_Mac_OS" title="Classic Mac OS">Classic Mac OS</a>, <a href="MacOS" title="MacOS">macOS</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object_Pascal" title="Object Pascal">Object Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MacApp" title="MacApp">MacApp</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Objective-C" title="Objective-C">Objective-C</a>, <a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cocoa_(API)" title="Cocoa (API)">Cocoa</a></li>
<li><a href="Cocoa_Touch" class="mw-redirect" title="Cocoa Touch">Cocoa Touch</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="MacApp" title="MacApp">MacApp</a></li>
<li><a href="PowerPlant" title="PowerPlant">PowerPlant</a></li>
<li><a href="THINK_C" title="THINK C">THINK C</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Xamarin#Xamarin.Mac" title="Xamarin">Xamarin.Mac</a></li>
<li><a href="Mono_(software)#Xamarin.iOS" title="Mono (software)">Xamarin.iOS</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Windows_Forms" title="Windows Forms">Windows Forms</a></li>
<li><a href="Extensible_Application_Markup_Language" title="Extensible Application Markup Language">XAML</a>
<ul><li><a href="Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a></li>
<li><a href="Windows_UI_Library" title="Windows UI Library">Windows UI Library</a></li>
<li><a href="Microsoft_Silverlight" title="Microsoft Silverlight">Silverlight</a></li></ul></li>
<li><a href="Microsoft_XNA" title="Microsoft XNA">Microsoft XNA</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Microsoft_Foundation_Class_Library" title="Microsoft Foundation Class Library">MFC</a></li>
<li><a href="Active_Template_Library" title="Active Template Library">Active Template Library</a></li>
<li><a href="Windows_Template_Library" title="Windows Template Library">Windows Template Library</a></li>
<li><a href="Object_Windows_Library" title="Object Windows Library">Object Windows Library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object_Pascal" title="Object Pascal">Object Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Visual_Component_Library" title="Visual Component Library">Visual Component Library</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Unix" title="Unix">Unix</a>,<br>under <a href="X_Window_System" title="X Window System">X11</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="X_Athena_Widgets" title="X Athena Widgets">Athena (Xaw)</a></li>
<li><a href="LessTif" title="LessTif">LessTif</a></li>
<li><a href="Motif_(software)" title="Motif (software)">Motif</a></li>
<li><a href="OLIT" title="OLIT">OLIT</a></li>
<li><a href="XForms_(toolkit)" title="XForms (toolkit)">XForms</a></li>
<li><a href="XView" title="XView">XView</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">On <a href="Android_(operating_system)" title="Android (operating system)">Android</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Android_software_development#Qt_for_Android" title="Android software development">Qt for Android</a></li></ul>
</div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"><b>High-level, cross-platform</b></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C_(programming_language)" title="C (programming language)">C</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Enlightenment_Foundation_Libraries" title="Enlightenment Foundation Libraries">Enlightenment Foundation Libraries</a></li>
<li><a href="GTK" title="GTK">GTK</a></li>
<li><a href="IUP_(software)" title="IUP (software)">IUP</a></li>
<li><a href="XForms_(toolkit)" title="XForms (toolkit)">XForms</a></li>
<li><a href="XVT" title="XVT">XVT</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="C%2B%2B" title="C++">C++</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bedrock_(framework)" title="Bedrock (framework)">Bedrock</a></li>
<li><a href="CEGUI" title="CEGUI">CEGUI</a></li>
<li><a href="Component_Library_for_Cross_Platform" title="Component Library for Cross Platform">Component Library for Cross Platform</a></li>
<li><a href="FLTK" title="FLTK">FLTK</a></li>
<li><a href="Fox_toolkit" title="Fox toolkit">FOX toolkit</a></li>
<li><a href="OpenGL_User_Interface_Library" class="mw-redirect" title="OpenGL User Interface Library">OpenGL User Interface Library</a></li>
<li><a href="Gtkmm" title="Gtkmm">gtkmm</a></li>
<li><a href="JUCE" title="JUCE">JUCE</a></li>
<li><a href="Qt_(software)" title="Qt (software)">Qt</a></li>
<li><a href="Rogue_Wave_Software" title="Rogue Wave Software">Rogue Wave Views</a></li>
<li><a href="TnFOX" class="mw-redirect" title="TnFOX">TnFOX</a></li>
<li><a href="Ultimate%2B%2B" title="Ultimate++">U++</a></li>
<li><a href="Wt_(web_toolkit)" title="Wt (web toolkit)">Wt</a></li>
<li><a href="WxWidgets" title="WxWidgets">wxWidgets</a></li>
<li><a href="Simple_and_Fast_Multimedia_Library" title="Simple and Fast Multimedia Library">Simple and Fast Multimedia Library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Objective-C" title="Objective-C">Objective-C</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="GNUstep" title="GNUstep">GNUstep</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Language_Infrastructure" title="Common Language Infrastructure">CLI</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Gtk_Sharp" class="mw-redirect" title="Gtk Sharp">Gtk#</a></li>
<li><a href="Tao_Framework" title="Tao Framework">Tao Framework</a>
<ul><li><a href="OpenTK" title="OpenTK">OpenTK</a></li></ul></li>
<li><a href="UIML" title="UIML">UIML</a></li>
<li><a href="MonoGame" title="MonoGame">MonoGame</a></li>
<li><a href="Moonlight_(runtime)" title="Moonlight (runtime)">Moonlight</a></li>
<li><a href="Xamarin#Xamarin.Forms" title="Xamarin">Xamarin.Forms</a></li>
<li>XWT<a rel="nofollow" class="external autonumber" href="https://www.mono-project.com/docs/gui/#xwt">[1]</a><a rel="nofollow" class="external autonumber" href="https://github.com/mono/xwt">[2]</a></li>
<li><a href=".NET#.NET_MAUI" title=".NET">.NET MAUI</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Adobe_Flash" title="Adobe Flash">Adobe Flash</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Apache_Flex" title="Apache Flex">Apache Flex</a>
<ul><li><a href="MXML" title="MXML">MXML</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Go_(programming_language)" title="Go (programming language)">Go</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Fyne_(software)" title="Fyne (software)">Fyne</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Haskell" title="Haskell">Haskell</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="WxHaskell" title="WxHaskell">wxHaskell</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Java_(programming_language)" title="Java (programming language)">Java</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul>
<li><a href="FXML" title="FXML">FXML</a></li>
<li><a href="JavaFX" title="JavaFX">JavaFX</a></li>
<li><a href="Qt_Jambi" class="mw-redirect" title="Qt Jambi">Qt Jambi</a></li>
<li><a href="Swing_(Java)" title="Swing (Java)">Swing</a></li>
<li><a href="Standard_Widget_Toolkit" title="Standard Widget Toolkit">Standard Widget Toolkit</a></li>
<li><a href="Google_Web_Toolkit" title="Google Web Toolkit">Google Web Toolkit</a></li>
<li><a href="Lightweight_User_Interface_Toolkit" title="Lightweight User Interface Toolkit">Lightweight User Interface Toolkit</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="JavaScript" title="JavaScript">JavaScript</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Dojo_Toolkit" title="Dojo Toolkit">Dojo Toolkit</a></li>
<li><a href="Echo_(framework)" title="Echo (framework)">Echo</a></li>
<li><a href="Ext_JS" title="Ext JS">Ext JS</a></li>
<li><a href="Google_Closure_Tools" title="Google Closure Tools">Google Closure Tools</a></li>
<li><a href="JQuery_UI" title="JQuery UI">jQuery UI</a></li>
<li><a href="OpenUI5" title="OpenUI5">OpenUI5</a></li>
<li><a href="Qooxdoo" title="Qooxdoo">Qooxdoo</a></li>
<li><a href="YUI_Library" title="YUI Library">YUI</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Common_Lisp" title="Common Lisp">Common Lisp</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="LispWorks" title="LispWorks">CAPI</a></li>
<li><a href="Common_Lisp_Interface_Manager" title="Common Lisp Interface Manager">CLIM</a></li>
<li><a href="Allegro_Common_Lisp" title="Allegro Common Lisp">Common Graphics</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Lua" title="Lua">Lua</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IUP_(software)" title="IUP (software)">IUP</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Lazarus_Component_Library" title="Lazarus Component Library">Lazarus Component Library</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object_Pascal" title="Object Pascal">Object Pascal</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Component_Library_for_Cross_Platform" title="Component Library for Cross Platform">Component Library for Cross Platform</a></li>
<li><a href="FpGUI" title="FpGUI">fpGUI</a></li>
<li><a href="IP_Pascal" title="IP Pascal">IP Pascal</a></li>
<li><a href="FireMonkey" title="FireMonkey">FireMonkey</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Perl" title="Perl">Perl</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Perl/<a href="Tk_(software)" title="Tk (software)">Tk</a></li>
<li><a href="WxPerl" class="mw-redirect" title="WxPerl">wxPerl</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="PHP" title="PHP">PHP</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="PHP-GTK" title="PHP-GTK">PHP-GTK</a></li>
<li><a href="WxPHP" title="WxPHP">wxPHP</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Python_(programming_language)" title="Python (programming language)">Python</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Tkinter" title="Tkinter">Tkinter</a></li>
<li><a href="Kivy_(framework)" title="Kivy (framework)">Kivy</a></li>
<li><a href="PySide" title="PySide">PySide</a></li>
<li><a href="PyQt" title="PyQt">PyQt</a></li>
<li><a href="PyGTK" title="PyGTK">PyGTK</a></li>
<li><a href="WxPython" title="WxPython">wxPython</a></li>
<li><a href="Pyjs" title="Pyjs">Pyjs</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Shoes_(GUI_toolkit)" class="mw-redirect" title="Shoes (GUI toolkit)">Shoes</a></li>
<li><a href="QtRuby" class="mw-redirect" title="QtRuby">QtRuby</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Tcl" title="Tcl">Tcl</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Tk_(software)" title="Tk (software)">Tcl/Tk</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="XML" title="XML">XML</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Glade_Interface_Designer" title="Glade Interface Designer">GladeXML</a></li>
<li><a href="Lively_Kernel" title="Lively Kernel">Lively Kernel</a></li>
<li><a href="Extensible_Application_Markup_Language" title="Extensible Application Markup Language">Extensible Application Markup Language</a></li>
<li><a href="XUL" title="XUL">XUL</a></li>
<li><a href="Wt_(web_toolkit)" title="Wt (web toolkit)">Wt</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Unix_shell" title="Unix shell">shell</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Newt_(programming_library)" title="Newt (programming library)">Newt</a></li>
<li><a href="CDK_(programming_library)" title="CDK (programming library)">CDK</a></li>
<li><a href="Dialog_(software)" title="Dialog (software)">Dialog</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Dart_(programming_language)" title="Dart (programming language)">Dart</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Flutter_(software)" title="Flutter (software)">Flutter</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-06" href="https://en.wikipedia.org/wiki/?title=Abstract_Window_Toolkit&amp;oldid=1304543235">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>